#include<stdio.h>
#include<unistd.h>
#include<string.h>

#define FILE_NAME "test.txt"

int main()
{
    //以w打开，不存在文件会直接创建  // r,w,r+,w+,a,a+ 不记得要复习
    //FILE* fp = fopen(FILE_NAME, "w"); // 向文件写入，以w方式打开，每次打开都会自动清空文件
    FILE* fp = fopen(FILE_NAME, "r"); // 只读取文件
    //FILE* fp = fopen(FILE_NAME, "a"); // 向文件结尾追加写入的内容
    if(fp == NULL)
    {
        perror("error fopen");
        return 1;
    }
    
    // 向文件中写入数据
//    for(int i = 0; i < 5; i++)
//    {
//        fprintf(fp, "%s:%d\n", "hello", i);
//    }
//
    // 将文件中的数据读取出来，并输出到屏幕上[stdout]
    char buffer[64];
    // fgets读取失败返回NULL， 
    // -1的原因是在buffer始终给\0留一个位置，因为fgets函数会将读取出来的数据加上\0
    while(fgets(buffer, sizeof(buffer)-1, fp) != NULL)
    {
        // 将buffer里的数据输出到屏幕上
        buffer[strlen(buffer)-1] = 0; // 将\n置为0. 防止多余的换行
        puts(buffer);
    }

    fclose(fp);

    return 0;
}
